package kr.hkit.powerjava.chapter09;

public class Car {
	private static int numberOfCars; //보통 여기 적음. 보통 여기서 0으로 초기화.
	//결국은 이거에 대한 겟 메소드 
	
	private String color;
	private int speed;
	private int gear;
	private int id;
	
	public Car(String color, int speed, int gear) {
		this.color = color;
		this.speed = speed;
		this.gear = gear;
		this.id = ++Car.numberOfCars; // 클래스 이름 붙여서 적는게 FM
	}
	

	public static int getNumberOfCars() {
		return numberOfCars;
	} // 여기서 스태틱 static 선언안해도 관계는 없지만
	  // 선언했을 시 Car.getNumberOfCars(); 수행가능 



	public static void main(String[] args) { //static은 static만 호출가능.그래서 호출됨
		//인스턴스화되어야만 static에서도 접근가능 (없는 내용을 어떻게 접근해)
		//static으로 선언된 변수는 바로 접근가능
		
		System.out.println(Car.getNumberOfCars()); //이거 수행가능.
		
		System.out.println("총 생산된 차량 수= " + Car.numberOfCars);
		// static으로 선언되지 않으면 에러뜸
		Car blue = new Car("blue", 100, 1);
		System.out.println("총 생산된 차량 수= " + Car.numberOfCars);
		Car red = new Car("red",60,2);
		System.out.println("총 생산된 차량 수= " + Car.numberOfCars);
		Car green = new Car ("green", 80, 3);
				
		System.out.println("총 생산된 차량 수= " + Car.numberOfCars);//총 개수 알려면
	}
	
}
